/**
 * 
 */

/**
 * 订阅课程
 */
function doSubscribeLesson(event) {
	var $btnSubscribe = $(this);
	if($btnSubscribe.text() == '正 在 审 核'){
		return;
	}
	$.ajax({
		url : '../onlineLesson/subscribe',
		data : {
			lessonId : $btnSubscribe.attr('data-id')
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('请先登录');
			} else {
				if (data.deal == 'success') {
					alert('订阅成功');
					$btnSubscribe.text('正 在 审 核').removeAttr('id');
				} else {
					alert('订阅失败');
				}
			}
		}
	});
}
/**
 * 取消订阅
 * 
 * @param event
 */
function deletescribeLesson(event) {
	var scribeId = $(this).parents('tr[data-id]').attr('data-id');
	$.ajax({
		url : 'userLesson/delSubscribe',
		data : {
			subscribeId : scribeId
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('尚未登陆');
			} else {
				if (data.del == 'success') {
					alert('取消订阅成功');
					location.reload();
				} else {
					alert('取消订阅失败');
				}
			}
		}
	});
}
/**
 * 动态获取第二课程类型列表(添加课程)
 */
function getLessonTwoTypeList(event) {
	var $leesonTwoType = $('#typeList select[name = major]');
	var $lessonOneType = $(this);
	var dataLocal = $lessonOneType.data('twoType');
	if (dataLocal != null) {
		dealHtml(dataLocal);
	} else {
		$.ajax({
			url : 'publishLesson/lessonType',
			data : {
				index : $lessonOneType.index()
			},
			type : 'post',
			dataType : 'json',
			success : function(data) {
				$lessonOneType.data('twoType', data);
				dealHtml(data);
			}
		});
	}
	function dealHtml(data) {
		$leesonTwoType.empty();
		for (var i = 0; i < data.length; i++) {
			$leesonTwoType.append('<option value="' + data[i].id + '">'
					+ data[i].typeName + '</option>');
		}
	}
}

/**
 * 动态获取第二课程类型列表（修改课程）
 */
function getLessonTwoTypeListByUpdate(event) {
	var $leesonTwoType = $('#typeList select[name = major]');
	var $lessonOneType = $(this);
	var dataLocal = $lessonOneType.data('twoType');
	if (dataLocal != null) {
		dealHtml(dataLocal);
	} else {
		$.ajax({
			url : 'lessonType',
			data : {
				index : $lessonOneType.index()
			},
			type : 'post',
			dataType : 'json',
			success : function(data) {
				$lessonOneType.data('twoType', data);
				dealHtml(data);
			}
		});
	}
	function dealHtml(data) {
		$leesonTwoType.empty();
		for (var i = 0; i < data.length; i++) {
			$leesonTwoType.append('<option value="' + data[i].id + '">'
					+ data[i].typeName + '</option>');
		}
	}
}
/**
 * 添加课程
 */
function addLesson(event) {
	var $lesson = $('#lesson');
	var data = {
		lessonType : {
			id : $lesson.find('[name=major]').val()
		},
		title : $lesson.find('[name=lessonTitle]').val(),
		logo : $lesson.find('[name=logo]').attr('src'),
		lessonInfo : {
			description : UE.getEditor('description').getContent(),
			synopsis : UE.getEditor('synopsis').getContent()
		}
	};
	$.ajax({
		url : 'publishLesson/add',
		data : {
			data : JSON.stringify(data)
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('用户尚未登陆，没有权限');
			} else {
				if (data.addLesson == 'success') {
					alert('课程添加成功');
					location.href = data.page;
				} else {
					alert('课程添加失败');
				}
			}
		}
	});
}

/**
 * 更新课程
 */
function updateLesson(event) {
	var $lesson = $('#lesson');
	var data = {
		id : $lesson.find('[name=lessonTitle]').attr('data-id'),
		lessonType : {
			id : $lesson.find('[name=major]').val()
		},
		title : $lesson.find('[name=lessonTitle]').val(),
		logo : $lesson.find('[name=logo]').attr('src'),
		lessonInfo : {
			description : UE.getEditor('description').getContent(),
			synopsis : UE.getEditor('synopsis').getContent()
		}
	};
	$.ajax({
		url : 'updateLesson',
		data : {
			data : JSON.stringify(data)
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('用户尚未登陆，没有权限');
			} else {
				if (data.updateLesson == 'success') {
					alert('课程添加成功');
					location.href = data.page;
				} else {
					alert('课程添加失败');
				}
			}
		}
	});
}

/**
 * 添加课程内容
 */
function addLessonContent(event) {
	var $content = $('#lessonContent');
	var data = {
		lesson : {
			id : $content.find('[name = lesson]').val()
		},
		title : $content.find('[name = title]').val(),
		contentInfo : {
			info : UE.getEditor('editor').getContent()
		}
	};
	$.ajax({
		url : 'publishLessonContent',
		data : {
			data : JSON.stringify(data)
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('用户尚未登陆，没有权限');
			} else {
				if (data.save == 'success') {
					alert('提交成功');
					location.href = data.page;
				} else {
					alert('提交失败');
				}
			}
		}
	});
}

/**
 * 留言翻页
 * 
 * @param event
 */
function commentPage(event) {
	var $btnPage = $(this);
	var start = $btnPage.parent().prevAll().length;
	var contentId = $('#lessonContent').attr('data-id');
	var data = {
		contentId : contentId,
		start : start
	};
	$.ajax({
		url : 'commentNext',
		data : data,
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.length == 0) {
				alert('暂无更多留言');
			} else {
				dealHtml(data);
			}
		}
	});
	function dealHtml(comment) {
		var $lastComment = $btnPage.parent().prev();
		for (var i = comment.length - 1; i >= 0; i--) {
			var $panel = $('<div id="comment' + comment[i].id
					+ '" class="panel panel-default"></div>');
			var $panelTitle = $('<div class="panel-heading"></div>');
			$panelTitle
					.append('<span><img style="height: 26px" class="img-rounded" src="'
							+ comment[i].user.logo + '" /> </span>');
			$panelTitle.append('<a href="#">' + comment[i].user.petName
					+ '</a> ');
			$panelTitle.append('<small class="text-muted">'
					+ comment[i].commentDate + '</small> ');
			$panelTitle.append('<a class="pull-right" data-id="'
					+ comment[i].id + '" data-type="reply" href="#">回复</a>');
			$panel.append($panelTitle);
			var $panelBody = $('<div class="panel-body"></div>')
			$panelBody.append(comment[i].commentInfo);
			$panel.append($panelBody);
			if (comment[i].reply.length > 0) {
				var $div = $('<div class="panel panel-danger"></div>');
				var $divBody = $('<div class="panel-body"></div>');
				var $list = $('<ul class="list-group"></ul>')
				for (var j = comment[i].reply.length - 1; j >= 0; j--) {
					var $listItem = $('<li class="list-group-item"></li>');
					$listItem
							.append('<div class="row"><ul class="list-inline"><li>&nbsp;<img src="'
									+ comment[i].reply[j].user.logo
									+ '" style="height: 26px" class="img-rounded" /></li><li><span data-type="petName"><a href="#">'
									+ comment[i].reply[j].user.petName
									+ ':</a></span></li><li><span class="content-inline">'
									+ comment[i].reply[j].contentInfo
									+ '</span></li></ul></div>');
					$listItem
							.append('<div class="row"><small class="pull-right text-muted">'
									+ comment[i].reply[j].replyDate
									+ ' &nbsp;<a data-id="'
									+ comment[i].id
									+ '" data-type="reply" href="#">回复</a> &nbsp;</small></div>');
					$list.append($listItem);
				}
				$divBody.append($list);
				$div.append($divBody);
				$panel.append($div);
			}
			$panel.find('a[data-type=reply]').click(commentReplyBtn);
			$lastComment.after($panel);
		}
	}
}

/**
 * 更新课题内容
 * 
 * @param event
 */
function updateContent(event) {
	var data = {
		id : $('#contentTitle').attr('data-id'),
		lesson : {
			id : $(this).attr('data-id')
		},
		title : $('#contentTitle').val(),
		contentInfo : {
			info : UE.getEditor('contentInfo').getContent()
		}
	};
	$.ajax({
		url : '../updateContent',
		data : {
			data : JSON.stringify(data)
		},
		type : 'POST',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('请先登录');
			} else {
				if (data.update == 'success') {
					alert('提交成功');
					location.href = data.page;
				} else {
					alert('提交失败');
				}
			}
		}
	});
}

/**
 * 根据课程类型查询
 * 
 * @param event
 */
function getLessonListByType(event) {
	event.preventDefault();
	var $type = $(this);
	var dataLocal = $type.data('lesson');
	if (dataLocal == null) {
		$.ajax({
			url : 'onlineLesson',
			data : {
				typeId : $(this).attr('data-id')
			},
			type : 'post',
			dataType : 'json',
			success : function(data) {
				$type.data('lesson', data);
				dealHtml(data)
			}
		});
	} else {
		dealHtml(dataLocal)
	}
	function dealHtml(data) {
		$('#lessonList').empty();
		for (var i = 0; i < data.length; i++) {
			var $dl = $('<dl class="col-sm-3"></dl>');
			$dl.append('<dt><a href="lessonInfo/' + data[i].id
					+ '"><img class="img-responsive" src="' + data[i].logo
					+ '" /></a></dt>');
			$dl.append('<dd><a class="link-black" href="lessonInfo/' + data[i].id + '">'
					+ data[i].title + '</a></dd>');
			$('#lessonList').append($dl);
		}
		$('body').animate({
			scrollTop : '0px'
		}, 600);
	}
}

/**
 * 根据课程获取内容列表
 * 
 * @param event
 */
function getContentListByLesson(event) {
	event.preventDefault();
	$('body').animate({
		scrollTop : '0px'
	}, 800);
	var lessonId = $(this).parent().attr('data-id');
	$.ajax({
		url : 'lessonInfo',
		data : {
			lessonId : lessonId
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			dealHtml(data);
		}
	})
	event.stopPropagation();
	function dealHtml(data) {
		var $content = $('#contentList');
		$content.empty();
		$content
				.append('<tr><th>ID</th><th>课题</th><th>提交时间</th><th>操作</th></tr>')
		for (var i = 0; i < data.length; i++) {
			var $tr = $('<tr data-id="' + data[i].id + '"></tr>');
			$tr.append('<td>' + data[i].id + '</td>');
			$tr.append('<td data-name="title">' + data[i].title + '</td>');
			$tr.append('<td>' + data[i].createDate + '</td>');
			$tr
					.append('<td> <a class="btn btn-info btn-xs" href="lessonInfo/show/'
							+ data[i].id
							+ '">查看</a> '
							+ ' <a class="btn btn-primary btn-xs" href="lessonInfo/update/'
							+ data[i].id
							+ '">修改</a> '
							+ ' <button class="btn btn-danger btn-xs" data-type="delete" type="button">删除</button> </td>');
			$content.append($tr);
		}
		$content.find('button[data-type=delete]').click(deleteContent);
	}
}

/**
 * 发表留言
 */
function lessonCommentPublish(event) {
	// 获取课题ID
	var contentId = $('#lessonContent').attr('data-id');
	// 获取留言内容
	var commentInfo = UE.getEditor('editor').getContent();
	// 验证字符数
	if (commentInfo.length < 2) {
		alert('字符过短');
	} else {
		var data = {
			commentInfo : commentInfo,
			lessonContent : {
				id : contentId
			}
		};
		$.ajax({
			url : 'comment',
			data : {
				data : JSON.stringify(data)
			},
			type : 'post',
			dataType : 'json',
			success : function(data) {
				if (data.isLogin == 'no') {
					alert('请先登录');
				} else {
					if (data.save == 'success') {
						alert('回复成功');
						dealHtml(data.commentId);
					} else {
						alert('回复失败');
					}
				}

			}
		});
	}
	function dealHtml(commentId) {
		UE.getEditor('editor').setContent('');
		var $comment = $('#lessonComment');
		var $panel = $('<div id="comment' + commentId
				+ '" class="panel panel-default"></div>');
		$panel
				.append('<div class="panel-heading"><span><img style="height: 26px" class="img-rounded" src="'
						+ $('#userLogo').attr('src')
						+ '" /> </span> <a href="#">'
						+ $('#userPetName').text()
						+ '</a><small class="text-muted">'
						+ new Date().toLocaleString()
						+ '</small><a class="pull-right" data-id="'
						+ commentId
						+ '" data-type="reply"href="#">回复</a></div>');
		$panel.append('<div class="panel-body"><div>' + commentInfo
				+ '</div></div>');
		$panel.find('a[data-type=reply]').click(commentReplyBtn);
		$comment.prepend($panel);
	}
}

/**
 * 留言回复输入框展开
 * 
 * @param event
 */
function commentReplyBtn(event) {
	event.preventDefault();
	// 获取点击按钮
	var $btnReply = $(this);
	// 获取回复的留言
	var commentId = $btnReply.attr('data-id');
	// 回复前缀
	var replyEntity = '';
	// 验证时否为二级回复
	if ($(this).parent().hasClass('text-muted')) {
		replyEntity = '回复'
				+ $btnReply.parents('div.row').prev().find(
						'span[data-type=petName]').html() + '&nbsp;';
	}

	// 获取回复列标签
	var $panel = $btnReply.parents('#comment' + commentId);
	// 隐藏回复框
	$('#lessonComment div[data-type=publishReply]').hide();
	// 获取回复框
	var $publishReply = $panel.find('div[data-type=publishReply]');
	// 建议是否有回复框
	if ($publishReply.length > 0) {
		$publishReply.find('button[data-id]').data('reply', replyEntity);
		UE.getEditor('reply' + commentId).setContent(replyEntity);
		// 动画显示
		$publishReply.show('600');
	} else {
		// 绘制回复框
		var $div = $('<div data-type="publishReply"></div>');
		$div.append('<textarea id="reply' + commentId
				+ '" rows="0" cols="0"></textarea><br />');
		$div.append('<button class="btn btn-danger" data-id="' + commentId
				+ '">发表</button>');
		$div.find('button[data-id]').data('reply', replyEntity).click(
				publishReply);
		$div.hide();
		$panel.append($div);
		// 百度ueditor异步请求
		var $putEditor = new UE.ui.Editor({

			// 这里可以选择自己需要的工具按钮名称
			toolbars : [ [ 'emotion' ] ],
			// focus时自动清空初始化时的内容
			autoClearinitialContent : true,
			// 关闭字数统计
			wordCount : false,
			// 关闭elementPath
			elementPathEnabled : false,
			maximumWords : 100,
			// 默认的编辑区域高度
			initialFrameHeight : 10

		});
		$putEditor.render('reply' + commentId);
		$putEditor.ready(function() {
			$putEditor.setContent(replyEntity);
			$div.show('600');
		});
	}
	event.stopPropagation();
}

/**
 * 发表回复提交
 * 
 * @param event
 */
function publishReply(event) {
	var $btncommit = $(this);
	// 获取留言ID
	var commentId = $btncommit.attr('data-id');
	// 获取富文本标签
	var $put = UE.getEditor('reply' + commentId);
	// 获取富文本内容
	var contentInfo = $put.getContent();
	// 验证字数
	if (contentInfo.replace($btncommit.data('reply'), '').length < 15) {
		alert('回复字数不够');
		return;
	}
	var data = {
		comment : {
			id : commentId
		},
		contentInfo : contentInfo
	};
	$.ajax({
		url : 'reply',
		data : {
			data : JSON.stringify(data)
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('请先登录');
			} else {
				if (data.save == 'success') {
					alert('回复成功');
					$put.setContent('');
					dealHtml();
				} else {
					alert('回复失败');
				}
			}
		}
	});
	function dealHtml() {
		$btncommit.parent().hide();
		var $replyList = $btncommit.parent().prev('div.panel');
		var $list;
		if ($replyList.length == 0) {
			var $div = $('<div class="panel panel-danger"></div>');
			var $divBody = $('<div class="panel-body"></div>');
			$list = $('<ul class="list-group"></ul>')
		} else {
			$list = $replyList.find('ul.list-group');
		}
		var $listItem = $('<li class="list-group-item"></li>');
		$listItem
				.append('<div class="row"><ul class="list-inline"><li>&nbsp;<img src="'
						+ $('#userLogo').attr('src')
						+ '" style="height: 26px" class="img-rounded" /></li><li><span data-type="petName"><a href="#">'
						+ $('#userPetName').text()
						+ ':</a></span></li><li><span class="content-inline">'
						+ contentInfo + '</span></li></ul></div>');
		$listItem
				.append('<div class="row"><small class="pull-right text-muted">'
						+ new Date().toLocaleString()
						+ ' &nbsp;<a data-id="'
						+ commentId
						+ '" data-type="reply" href="#">回复</a> &nbsp;</small></div>');
		$listItem.find('a[data-type=reply]').click(commentReplyBtn);
		$list.append($listItem);
		if ($replyList.length == 0){
			$divBody.append($list);
			$div.append($divBody);
			$btncommit.parent().before($div);
		}
	}
}

/**
 * 获取课程二级分类列表（管理员）
 * 
 * @param event
 */
function getTwoTypeList(event) {
	var $btnDeal = $(this);
	$('body').animate({
		scrollTop : '0px'
	}, 800);
	if ($btnDeal.data('typeData') != null) {
		return;
	}
	var typeId = $btnDeal.attr('data-id');

	$.ajax({
		url : 'lessonType',
		data : {
			typeId : typeId
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			$btnDeal.data('typeData', 1);
			dealHtml(data);
		}
	});
	function dealHtml(data) {
		var $twoType = $('#twoType');
		var $div = $('<div id="type' + typeId + '" class="tab-pane fade">');
		var $table = $('<table class="table table-striped table-bordered table-hover"></table>');
		$table.append('<tr><th>ID</th><th>类别</th><th>操作</th></tr>');
		for (var i = 0; i < data.length; i++) {
			var $tr = $('<tr></tr>');
			$tr.append('<td>' + data[i].id + '</td>');
			$tr.append('<td id="twoTypeName' + data[i].id + '">'
					+ data[i].typeName + '</td>');
			$tr
					.append('<td><a href="#" class="btn btn-success btn-xs" data-id="'
							+ data[i].id
							+ '" data-toggle="modal" data-target="#myModal">修改</a> '
							+ '<a href="#" class="btn btn-danger btn-xs" data-type="delete" data-parent="twoType" data-id="'
							+ data[i].id + '">删除</a></td>');
			$tr.find('a[data-type=delete]').click(deleteType);
			$tr.find('a[data-toggle=modal]').click(
					function(event) {
						var $btnCommit = $(this);
						var $typeName = $btnCommit.parent().prev()
						$('#typeUpdate').attr('data-id',
								$btnCommit.attr('data-id')).attr('data-type',
								'twoType');
						$('#myModal input[name=type]').val($typeName.text());
					});
			$table.append($tr);
		}
		$div.append($table);
		$twoType.append($div);
		$btnDeal.trigger('click');
	}
}

/**
 * 修改课程类型数据
 * 
 * @param event
 */
function updateLessonType(event) {
	var $btnCommit = $(this);
	var typeId = $btnCommit.attr('data-id');
	var $typeName = $('#myModal input[name=type]');
	var url = 'lessonType/updateType';
	var data = {
		id : typeId,
		typeName : $typeName.val()
	};
	var type;
	if ($btnCommit.attr('data-type') == 'oneType') {
		type = 'oneType';
	} else if ($btnCommit.attr('data-type') == 'twoType') {
		type = 'twoType';
	}
	$.ajax({
		url : url,
		data : {
			data : JSON.stringify(data),
			type : type
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('尚未登陆，没有权限')
			} else {
				if (data.update == 'success') {
					if (type == 'oneType') {
						$('#oneTypeName' + typeId).text($typeName.val());
					} else {
						$('#twoTypeName' + typeId).text($typeName.val());
					}
					alert('修改成功');
					$('#myModal').modal('hide')
				} else {
					alert('修改失败');
				}
			}
		}
	});
}

/**
 * 添加课程类型数据
 * 
 * @param event
 */
function addLessonType(event) {
	var typeName = $('#typeName').val();
	var $oneType = $('#oneType');
	var data;
	var url;
	if ($oneType.length == 0) {
		url = 'publishOneType';
		data = {
			typeName : typeName
		};
	} else {
		url = 'publishTwoType';
		data = {
			typeName : typeName,
			oneType : {
				id : $oneType.val()
			}
		};
	}
	$.ajax({
		url : url,
		data : {
			data : JSON.stringify(data)
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('尚未登陆，没有权限');
			} else {
				if (data.save == 'success') {
					alert('添加成功');
					location.href = data.page;
				} else {
					alert('添加失败');
				}
			}
		}
	});
}

/**
 * 删除相应课程类型
 * 
 * @param event
 */
function deleteType(event) {
	event.preventDefault();
	var $btnDelete = $(this);
	var type = $btnDelete.attr('data-parent');
	var typeId = $btnDelete.attr('data-id');
	$.ajax({
		url : 'lessonType/deleteType',
		data : {
			typeId : typeId,
			type : type
		},
		type : 'post',
		dataType : 'json',
		success : function(data) {
			if (data.isLogin == 'no') {
				alert('尚未登陆，没有权限');
			} else {
				if (data.del == 'success') {
					alert('删除成功');
					$btnDelete.parent().parent().remove();
					if (type == 'oneType') {
						$('#type' + typeId).remove();
					}
				} else {
					alert('删除失败');
				}
			}
		}
	});
	event.stopPropagation();
}